﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FAS.App_Code;
using System.Data;

namespace FAS.Objetos
{
    public class Parcial
    {
        
        #region Atributos
        public string Materia { get; set; }
        public string Fecha { get; set; }
        public int ParcialP { get; set; }
        public IList<Examen> Examenes { get; set; }
        #endregion

        #region Constructor

        public Parcial(int parcial,string materia, string fecha, IList<Examen> examenes)
        {
            this.ParcialP = parcial;
            this.Materia = materia;
            this.Fecha = fecha;
            this.Examenes = examenes;
        }
        #endregion

        #region Metodos
        public void GenerarExamenes(int cantidad,Dictionary<Objetivo,int> opcion,string periodo, int idmateria)
        {
            string pdff = "clave" + this.ParcialP+ idmateria + periodo;
            this.Examenes = new List<Examen>();
            for (int i = 1; i <= cantidad; i++)
            {
                IList<Problema> problemas = new List<Problema>();
                foreach (var objetivo in opcion)
                {
                    IList<Problema> p=objetivo.Key.GetProblemasRandom(objetivo.Value);                    
                    foreach (Problema pnew in p)
                        problemas.Add(pnew);
                   // problemas.Concat(objetivo.Key.GetProblemasRandom(objetivo.Value));
                }
                Examen examen = new Examen(this.ParcialP, problemas,periodo,idmateria,pdff,i);
                this.Examenes.Add(examen);
            }
            WordCreator pdf = new WordCreator(this.Examenes, this);
        }


        public int[,] GenerarClave()
        {
            int numExamenes = this.Examenes.Count;
            int numProblemas= this.Examenes[0].Problemas.Count;
            int[,] clave = new int[numExamenes,numProblemas];
            foreach(Examen examen in Examenes){

            }
            return clave;
        }

        #endregion

    }
}
